home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / TextUtils.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  19.6 KB  |  503 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        TextUtils.mod
  3.  
  4.      Contains:    Text Utilities Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$IF UNDEFINED OLDROUTINELOCATIONS*)
  21. (*$SET OLDROUTINELOCATIONS FALSE*)
  22. (*$END*)
  23. (*$TAGS-*)
  24. (*$CALLING PASCAL*)
  25. MODULE TextUtils;
  26.  
  27. IMPORT SYSTEM, Types, QuickdrawText, IntlResources, OSUtils;
  28.  
  29. (* $PUSH*)
  30. (* $ALIGN MAC68K*)
  31. (* $LibExport+*)
  32. (*
  33.  
  34.     Here are the current routine names and the translations to the older forms.
  35.     Please use the newer forms in all new code and migrate the older names out of existing
  36.     code as maintainance permits.
  37.     
  38.     New Name                    Old Name(s)
  39.     
  40.     CompareString                IUCompPString IUMagString IUMagPString IUCompString 
  41.     CompareText
  42.     DateString                    IUDatePString IUDateString 
  43.     EqualString                            
  44.     ExtendedToString            FormatX2Str
  45.     FindScriptRun
  46.     FindWordBreaks                NFindWord FindWord
  47.     FormatRecToString            Format2Str
  48.     GetIndString            
  49.     GetString
  50.     IdenticalString                IUMagIDString IUMagIDPString IUEqualString IUEqualPString
  51.     IdenticalText
  52.     InitDateCache
  53.     LanguageOrder                IULangOrder
  54.     LongDateString                IULDateString
  55.     LongTimeString                IULTimeString
  56.     LowercaseText                LwrText LowerText
  57.     Munger
  58.     NewString                
  59.     NumToString                
  60.     RelString                
  61.     ReplaceText
  62.     ScriptOrder                    IUScriptOrder
  63.     SetString                
  64.     StringOrder                    IUStringOrder
  65.     StringToDate                String2Date
  66.     StringToExtended            FormatStr2X
  67.     StringToFormatRec            Str2Format
  68.     StringToNum                
  69.     StringToTime                                
  70.     StripDiacritics                StripText
  71.     StyledLineBreak
  72.     TextOrder
  73.     TimeString                    IUTimeString IUTimePString
  74.     TruncString
  75.     TruncText
  76.     UpperString                    UprString
  77.     UppercaseStripDiacritics    StripUpperText
  78.     UppercaseText                UprText UprText
  79. *)
  80. (* New constants for System 7.0: *)
  81.  
  82. CONST
  83. (* Constants for truncWhere argument in TruncString and TruncText *)
  84.     truncEnd*                    = 0;                            (* Truncate at end *)
  85.     truncMiddle*                    = $4000;                        (* Truncate in middle *)
  86.     smTruncEnd*                    = 0;                            (* Truncate at end - obsolete *)
  87.     smTruncMiddle*                = $4000;                        (* Truncate in middle - obsolete *)
  88. (* Constants for TruncString and TruncText results *)
  89.     notTruncated*                = 0;                            (* No truncation was necessary *)
  90.     truncated*                    = 1;                            (* Truncation performed *)
  91.     truncErr*                    = -1;                            (* General error *)
  92.     smNotTruncated*                = 0;                            (* No truncation was necessary - obsolete *)
  93.     smTruncated*                    = 1;                            (* Truncation performed    - obsolete *)
  94.     smTruncErr*                    = -1;                            (* General error - obsolete *)
  95.  
  96.     fVNumber*                    = 0;                            (* first version of NumFormatString *)
  97. (* Special language code values for Language Order *)
  98.     systemCurLang*                = -2;                            (* current (itlbLang) lang for system script *)
  99.     systemDefLang*                = -3;                            (* default (table) lang for system script *)
  100.     currentCurLang*                = -4;                            (* current (itlbLang) lang for current script *)
  101.     currentDefLang*                = -5;                            (* default lang for current script *)
  102.     scriptCurLang*                = -6;                            (* current (itlbLang) lang for specified script *)
  103.     scriptDefLang*                = -7;                            (* default language for a specified script *)
  104.  
  105.     iuSystemCurLang*                = -2;                            (* <obsolete> current (itlbLang) lang for system script *)
  106.     iuSystemDefLang*                = -3;                            (* <obsolete> default (table) lang for system script *)
  107.     iuCurrentCurLang*            = -4;                            (* <obsolete> current (itlbLang) lang for current script *)
  108.     iuCurrentDefLang*            = -5;                            (* <obsolete> default lang for current script *)
  109.     iuScriptCurLang*                = -6;                            (* <obsolete> current (itlbLang) lang for specified script *)
  110.  
  111. (* <obsolete> default language for a specified script *)
  112.     iuScriptDefLang*                = -7;
  113.  
  114.     
  115. TYPE
  116.     StyledLineBreakCode* = Types.SInt8;
  117.  
  118.  
  119. CONST
  120.     smBreakWord*                    = 0;
  121.     smBreakChar*                    = 1;
  122.     smBreakOverflow*                = 2;
  123.  
  124.     
  125. TYPE
  126.     FormatClass* = Types.SInt8;
  127.  
  128.  
  129. CONST
  130.     fPositive*                    = 0;
  131.     fNegative*                    = 1;
  132.     fZero*                        = 2;
  133.  
  134.     
  135. TYPE
  136.     FormatResultType* = Types.SInt8;
  137.  
  138.  
  139. CONST
  140.     fFormatOK*                    = 0;
  141.     fBestGuess*                    = 1;
  142.     fOutOfSynch*                    = 2;
  143.     fSpuriousChars*                = 3;
  144.     fMissingDelimiter*            = 4;
  145.     fExtraDecimal*                = 5;
  146.     fMissingLiteral*                = 6;
  147.     fExtraExp*                    = 7;
  148.     fFormatOverflow*                = 8;
  149.     fFormStrIsNAN*                = 9;
  150.     fBadPartsTable*                = 10;
  151.     fExtraPercent*                = 11;
  152.     fExtraSeparator*                = 12;
  153.     fEmptyFormatString*            = 13;
  154.  
  155.  
  156. TYPE
  157.     NumFormatString* = (*ΔΔPACKEDΔΔ*) RECORD
  158.         fLength*:                Types.UInt8;
  159.         fVersion*:                Types.UInt8;
  160.         data*:                    (*ΔΔPACKEDΔΔ*) ARRAY 254 (*ΔΔ[0..253]ΔΔ*) OF CHAR;            (* private data *)
  161.     END;
  162.  
  163.     NumFormatStringRec* = NumFormatString;
  164.  
  165.     FVector* = RECORD
  166.         start*:                    INTEGER;
  167.         length*:                    INTEGER;
  168.     END;
  169.  
  170. (* index by [fPositive..fZero] *)
  171.     TripleInt* = ARRAY 3 (*ΔΔ[0..2]ΔΔ*) OF FVector;
  172.  
  173.     ScriptRunStatus* = RECORD
  174.         script*:                    Types.SInt8;
  175.         runVariant*:                Types.SInt8;
  176.     END;
  177.  
  178. (* New types for System 7.0: *)
  179. (* Type for truncWhere parameter in new TruncString, TruncText *)
  180.     TruncCode* = INTEGER;
  181.  
  182.  
  183. CONST
  184.     shortDate*                    = 0;
  185.     longDate*                    = 1;
  186.     abbrevDate*                    = 2;
  187.  
  188.     
  189. TYPE
  190.     DateForm* = Types.SInt8;
  191.  
  192.  
  193. CONST
  194. (* StringToDate status values *)
  195.     fatalDateTime*                = $8000;                        (* StringToDate and String2Time mask to a fatal error *)
  196.     longDateFound*                = 1;                            (* StringToDate mask to long date found *)
  197.     leftOverChars*                = 2;                            (* StringToDate & Sound.Time mask to warn of left over characters *)
  198.     sepNotIntlSep*                = 4;                            (* StringToDate & Sound.Time mask to warn of non-standard separators *)
  199.     fieldOrderNotIntl*            = 8;                            (* StringToDate & Sound.Time mask to warn of non-standard field order *)
  200.     extraneousStrings*            = 16;                            (* StringToDate & Sound.Time mask to warn of unparsable strings in text *)
  201.     tooManySeps*                    = 32;                            (* StringToDate & Sound.Time mask to warn of too many separators *)
  202.     sepNotConsistent*            = 64;                            (* StringToDate & Sound.Time mask to warn of inconsistent separators *)
  203.     tokenErr*                    = $8100;                        (* StringToDate & Sound.Time mask for 'tokenizer err encountered' *)
  204.     cantReadUtilities*            = $8200;
  205.     dateTimeNotFound*            = $8400;
  206.     dateTimeInvalid*                = $8800;
  207.  
  208.     
  209. TYPE
  210.     StringToDateStatus* = INTEGER;
  211.  
  212.     String2DateStatus* = INTEGER;
  213.  
  214.     DateCacheRecord* = (*ΔΔPACKEDΔΔ*) RECORD
  215.         hidden*:                    ARRAY 256 (*ΔΔ[0..255]ΔΔ*) OF INTEGER;                (* only for temporary use *)
  216.     END;
  217.  
  218.     DateCachePtr* = POINTER TO DateCacheRecord;
  219.  
  220.     BreakTable* = RECORD
  221.         charTypes*:                (*ΔΔPACKEDΔΔ*) ARRAY 256 (*ΔΔ[0..255]ΔΔ*) OF CHAR;
  222.         tripleLength*:            INTEGER;
  223.         triples*:                ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF INTEGER;
  224.     END;
  225.  
  226.     BreakTablePtr* = POINTER TO BreakTable;
  227.  
  228. (* New NBreakTable for System 7.0: *)
  229.     NBreakTable* = RECORD
  230.         flags1*:                    Types.SInt8;
  231.         flags2*:                    Types.SInt8;
  232.         version*:                INTEGER;
  233.         classTableOff*:            INTEGER;
  234.         auxCTableOff*:            INTEGER;
  235.         backwdTableOff*:            INTEGER;
  236.         forwdTableOff*:            INTEGER;
  237.         doBackup*:                INTEGER;
  238.         length*:                    INTEGER;                                (* length of NBreakTable *)
  239.         charTypes*:                (*ΔΔPACKEDΔΔ*) ARRAY 256 (*ΔΔ[0..255]ΔΔ*) OF CHAR;
  240.         tables*:                    ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF INTEGER;
  241.     END;
  242.  
  243.     NBreakTablePtr* = POINTER TO NBreakTable;
  244.  
  245. (*
  246.     The following functions are new names that work on 68k and PowerPC
  247. *)
  248.  
  249. PROCEDURE InitDateCache*(theCache: DateCachePtr): Types.OSErr;
  250.     (*$IF NOT GENERATINGCFM*)
  251.     INLINE PASCAL $2F3C, $8204, $FFF8, $A8B5;
  252.     (*$END*)
  253. PROCEDURE Munger*(h: Types.Handle; offset: LONGINT; ptr1: (*ΔΔUNIVΔΔ*) Types.Ptr; len1: LONGINT; ptr2: (*ΔΔUNIVΔΔ*) Types.Ptr; len2: LONGINT): LONGINT;
  254.     (*$IF NOT GENERATINGCFM*)
  255.     INLINE PASCAL $A9E0;
  256.     (*$END*)
  257. PROCEDURE NewString*(theString: Types.ConstStr255Param): Types.StringHandle;
  258.     (*$IF NOT GENERATINGCFM*)
  259.     INLINE PASCAL $A906;
  260.     (*$END*)
  261. PROCEDURE SetString*(theString: Types.StringHandle; strNew: Types.ConstStr255Param);
  262.     (*$IF NOT GENERATINGCFM*)
  263.     INLINE PASCAL $A907;
  264.     (*$END*)
  265. PROCEDURE GetString*(stringID: INTEGER): Types.StringHandle;
  266.     (*$IF NOT GENERATINGCFM*)
  267.     INLINE PASCAL $A9BA;
  268.     (*$END*)
  269. PROCEDURE GetIndString*(VAR theString: Types.Str255; strListID: INTEGER; index: INTEGER);
  270.     EXTERNAL PASCAL;
  271. PROCEDURE ScriptOrder*(script1: Types.ScriptCode; script2: Types.ScriptCode): INTEGER;
  272.     (*$IF NOT GENERATINGCFM*)
  273.     INLINE PASCAL $3F3C, $001E, $A9ED;
  274.     (*$END*)
  275. PROCEDURE StyledLineBreak*(textPtr: Types.Ptr; textLen: LONGINT; textStart: LONGINT; textEnd: LONGINT; flags: LONGINT; VAR textWidth: Types.Fixed; VAR textOffset: LONGINT): StyledLineBreakCode;
  276.     (*$IF NOT GENERATINGCFM*)
  277.     INLINE PASCAL $2F3C, $821C, $FFFE, $A8B5;
  278.     (*$END*)
  279. PROCEDURE TruncString*(width: INTEGER; VAR theString: Types.Str255; truncWhere: TruncCode): INTEGER;
  280.     (*$IF NOT GENERATINGCFM*)
  281.     INLINE PASCAL $2F3C, $8208, $FFE0, $A8B5;
  282.     (*$END*)
  283. PROCEDURE TruncText*(width: INTEGER; textPtr: Types.Ptr; VAR length: INTEGER; truncWhere: TruncCode): INTEGER;
  284.     (*$IF NOT GENERATINGCFM*)
  285.     INLINE PASCAL $2F3C, $820C, $FFDE, $A8B5;
  286.     (*$END*)
  287. PROCEDURE ReplaceText*(baseText: Types.Handle; substitutionText: Types.Handle; VAR key: Types.Str15): INTEGER;
  288.     (*$IF NOT GENERATINGCFM*)
  289.     INLINE PASCAL $2F3C, $820C, $FFDC, $A8B5;
  290.     (*$END*)
  291. PROCEDURE FindWordBreaks*(textPtr: Types.Ptr; textLength: INTEGER; offset: INTEGER; leadingEdge: BOOLEAN; breaks: BreakTablePtr; VAR offsets: QuickdrawText.OffsetTable; script: Types.ScriptCode);
  292.     (*$IF NOT GENERATINGCFM*)
  293.     INLINE PASCAL $2F3C, $C012, $001A, $A8B5;
  294.     (*$END*)
  295. PROCEDURE LowercaseText*(textPtr: Types.Ptr; len: INTEGER; script: Types.ScriptCode);
  296.     (*$IF NOT GENERATINGCFM*)
  297.     INLINE PASCAL $3F3C, $0000, $2F3C, $800A, $FFB6, $A8B5;
  298.     (*$END*)
  299. PROCEDURE UppercaseText*(textPtr: Types.Ptr; len: INTEGER; script: Types.ScriptCode);
  300.     (*$IF NOT GENERATINGCFM*)
  301.     INLINE PASCAL $3F3C, $0400, $2F3C, $800A, $FFB6, $A8B5;
  302.     (*$END*)
  303. PROCEDURE StripDiacritics*(textPtr: Types.Ptr; len: INTEGER; script: Types.ScriptCode);
  304.     (*$IF NOT GENERATINGCFM*)
  305.     INLINE PASCAL $3F3C, $0200, $2F3C, $800A, $FFB6, $A8B5;
  306.     (*$END*)
  307. PROCEDURE UppercaseStripDiacritics*(textPtr: Types.Ptr; len: INTEGER; script: Types.ScriptCode);
  308.     (*$IF NOT GENERATINGCFM*)
  309.     INLINE PASCAL $3F3C, $0600, $2F3C, $800A, $FFB6, $A8B5;
  310.     (*$END*)
  311. PROCEDURE FindScriptRun*(textPtr: Types.Ptr; textLen: LONGINT; VAR lenUsed: LONGINT): INTEGER (*ΔΔ ScriptRunStatus*);
  312.     (*$IF NOT GENERATINGCFM*)
  313.     INLINE PASCAL $2F3C, $820C, $0026, $A8B5;
  314.     (*$END*)
  315. PROCEDURE EqualString*(str1: Types.ConstStr255Param; str2: Types.ConstStr255Param; caseSensitive: BOOLEAN; diacSensitive: BOOLEAN): BOOLEAN;
  316.     EXTERNAL PASCAL;
  317. PROCEDURE UpperString*(VAR theString: Types.Str255; diacSensitive: BOOLEAN);
  318.     EXTERNAL PASCAL;
  319. PROCEDURE StringToNum*(theString: Types.ConstStr255Param; VAR theNum: LONGINT);
  320.     EXTERNAL PASCAL;
  321. PROCEDURE NumToString*(theNum: LONGINT; VAR theString: Types.Str255);
  322.     EXTERNAL PASCAL;
  323. PROCEDURE RelString*(str1: Types.ConstStr255Param; str2: Types.ConstStr255Param; caseSensitive: BOOLEAN; diacSensitive: BOOLEAN): INTEGER;
  324.     EXTERNAL PASCAL;
  325. PROCEDURE StringToDate*(textPtr: Types.Ptr; textLen: LONGINT; theCache: DateCachePtr; VAR lengthUsed: LONGINT; VAR dateTime: OSUtils.LongDateRec): StringToDateStatus;
  326.     (*$IF NOT GENERATINGCFM*)
  327.     INLINE PASCAL $2F3C, $8214, $FFF6, $A8B5;
  328.     (*$END*)
  329. PROCEDURE StringToTime*(textPtr: Types.Ptr; textLen: LONGINT; theCache: DateCachePtr; VAR lengthUsed: LONGINT; VAR dateTime: OSUtils.LongDateRec): StringToDateStatus;
  330.     (*$IF NOT GENERATINGCFM*)
  331.     INLINE PASCAL $2F3C, $8214, $FFF4, $A8B5;
  332.     (*$END*)
  333. (*•• PROCEDURE ExtendedToString*(VAR x: Types.Extended80; (*CONST*)VAR myCanonical: NumFormatString; (*CONST*)VAR partsTable: IntlResources.NumberParts; VAR outString: Types.Str255): QuickdrawText.FormatStatus;
  334.     (*$IF NOT GENERATINGCFM*)
  335.     INLINE PASCAL $2F3C, $8210, $FFE8, $A8B5;
  336.     (*$END*)*)
  337. (*•• PROCEDURE StringToExtended*(source: Types.ConstStr255Param; (*CONST*)VAR myCanonical: NumFormatString; (*CONST*)VAR partsTable: IntlResources.NumberParts; VAR x: Types.Extended80): QuickdrawText.FormatStatus;
  338.     (*$IF NOT GENERATINGCFM*)
  339.     INLINE PASCAL $2F3C, $8210, $FFE6, $A8B5;
  340.     (*$END*)*)
  341. PROCEDURE StringToFormatRec*(inString: Types.ConstStr255Param; (*CONST*)VAR partsTable: IntlResources.NumberParts; VAR outString: NumFormatString): QuickdrawText.FormatStatus;
  342.     (*$IF NOT GENERATINGCFM*)
  343.     INLINE PASCAL $2F3C, $820C, $FFEC, $A8B5;
  344.     (*$END*)
  345. PROCEDURE FormatRecToString*((*CONST*)VAR myCanonical: NumFormatString; (*CONST*)VAR partsTable: IntlResources.NumberParts; VAR outString: Types.Str255; VAR positions: TripleInt): QuickdrawText.FormatStatus;
  346.     (*$IF NOT GENERATINGCFM*)
  347.     INLINE PASCAL $2F3C, $8210, $FFEA, $A8B5;
  348.     (*$END*)
  349. (*
  350.     The following functions are old names, but are required for PowerPC builds
  351.     becuase InterfaceLib exports these names, instead of the new ones.
  352. *)
  353. PROCEDURE IUMagString*(aPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; bPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; aLen: INTEGER; bLen: INTEGER): INTEGER;
  354.     (*$IF NOT GENERATINGCFM*)
  355.     INLINE PASCAL $3F3C, $000A, $A9ED;
  356.     (*$END*)
  357. PROCEDURE IUMagIDString*(aPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; bPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; aLen: INTEGER; bLen: INTEGER): INTEGER;
  358.     (*$IF NOT GENERATINGCFM*)
  359.     INLINE PASCAL $3F3C, $000C, $A9ED;
  360.     (*$END*)
  361. PROCEDURE IUMagPString*(aPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; bPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; aLen: INTEGER; bLen: INTEGER; itl2Handle: Types.Handle): INTEGER;
  362.     (*$IF NOT GENERATINGCFM*)
  363.     INLINE PASCAL $3F3C, $001A, $A9ED;
  364.     (*$END*)
  365. PROCEDURE IUMagIDPString*(aPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; bPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; aLen: INTEGER; bLen: INTEGER; itl2Handle: Types.Handle): INTEGER;
  366.     (*$IF NOT GENERATINGCFM*)
  367.     INLINE PASCAL $3F3C, $001C, $A9ED;
  368.     (*$END*)
  369. PROCEDURE IUDateString*(dateTime: LONGINT; longFlag: Types.ByteParameter; VAR result: Types.Str255);
  370.     (*$IF NOT GENERATINGCFM*)
  371.     INLINE PASCAL $4267, $A9ED;
  372.     (*$END*)
  373. PROCEDURE IUTimeString*(dateTime: LONGINT; wantSeconds: BOOLEAN; VAR result: Types.Str255);
  374.     (*$IF NOT GENERATINGCFM*)
  375.     INLINE PASCAL $3F3C, $0002, $A9ED;
  376.     (*$END*)
  377. PROCEDURE IUDatePString*(dateTime: LONGINT; longFlag: Types.ByteParameter; VAR result: Types.Str255; intlHandle: Types.Handle);
  378.     (*$IF NOT GENERATINGCFM*)
  379.     INLINE PASCAL $3F3C, $000E, $A9ED;
  380.     (*$END*)
  381. PROCEDURE IUTimePString*(dateTime: LONGINT; wantSeconds: BOOLEAN; VAR result: Types.Str255; intlHandle: Types.Handle);
  382.     (*$IF NOT GENERATINGCFM*)
  383.     INLINE PASCAL $3F3C, $0010, $A9ED;
  384.     (*$END*)
  385. PROCEDURE IULDateString*(VAR dateTime: OSUtils.LongDateTime; longFlag: Types.ByteParameter; VAR result: Types.Str255; intlHandle: Types.Handle);
  386.     (*$IF NOT GENERATINGCFM*)
  387.     INLINE PASCAL $3F3C, $0014, $A9ED;
  388.     (*$END*)
  389. PROCEDURE IULTimeString*(VAR dateTime: OSUtils.LongDateTime; wantSeconds: BOOLEAN; VAR result: Types.Str255; intlHandle: Types.Handle);
  390.     (*$IF NOT GENERATINGCFM*)
  391.     INLINE PASCAL $3F3C, $0016, $A9ED;
  392.     (*$END*)
  393. PROCEDURE IUScriptOrder*(script1: Types.ScriptCode; script2: Types.ScriptCode): INTEGER;
  394.     (*$IF NOT GENERATINGCFM*)
  395.     INLINE PASCAL $3F3C, $001E, $A9ED;
  396.     (*$END*)
  397. PROCEDURE IULangOrder*(language1: Types.LangCode; language2: Types.LangCode): INTEGER;
  398.     (*$IF NOT GENERATINGCFM*)
  399.     INLINE PASCAL $3F3C, $0020, $A9ED;
  400.     (*$END*)
  401. PROCEDURE IUTextOrder*(aPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; bPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; aLen: INTEGER; bLen: INTEGER; aScript: Types.ScriptCode; bScript: Types.ScriptCode; aLang: Types.LangCode; bLang: Types.LangCode): INTEGER;
  402.     (*$IF NOT GENERATINGCFM*)
  403.     INLINE PASCAL $3F3C, $0022, $A9ED;
  404.     (*$END*)
  405. PROCEDURE FindWord*(textPtr: Types.Ptr; textLength: INTEGER; offset: INTEGER; leadingEdge: BOOLEAN; breaks: BreakTablePtr; VAR offsets: QuickdrawText.OffsetTable);
  406.     (*$IF NOT GENERATINGCFM*)
  407.     INLINE PASCAL $2F3C, $8012, $001A, $A8B5;
  408.     (*$END*)
  409. PROCEDURE NFindWord*(textPtr: Types.Ptr; textLength: INTEGER; offset: INTEGER; leadingEdge: BOOLEAN; nbreaks: NBreakTablePtr; VAR offsets: QuickdrawText.OffsetTable);
  410.     (*$IF NOT GENERATINGCFM*)
  411.     INLINE PASCAL $2F3C, $8012, $FFE2, $A8B5;
  412.     (*$END*)
  413. PROCEDURE UprText*(textPtr: Types.Ptr; len: INTEGER);
  414.     (*$IF NOT GENERATINGCFM*)
  415.     INLINE PASCAL $301F, $205F, $A054;
  416.     (*$END*)
  417. PROCEDURE LwrText*(textPtr: Types.Ptr; len: INTEGER);
  418.     (*$IF NOT GENERATINGCFM*)
  419.     INLINE PASCAL $301F, $205F, $A056;
  420.     (*$END*)
  421. PROCEDURE LowerText*(textPtr: Types.Ptr; len: INTEGER);
  422.     (*$IF NOT GENERATINGCFM*)
  423.     INLINE PASCAL $301F, $205F, $A056;
  424.     (*$END*)
  425. PROCEDURE StripText*(textPtr: Types.Ptr; len: INTEGER);
  426.     (*$IF NOT GENERATINGCFM*)
  427.     INLINE PASCAL $301F, $205F, $A256;
  428.     (*$END*)
  429. PROCEDURE UpperText*(textPtr: Types.Ptr; len: INTEGER);
  430.     (*$IF NOT GENERATINGCFM*)
  431.     INLINE PASCAL $301F, $205F, $A456;
  432.     (*$END*)
  433. PROCEDURE StripUpperText*(textPtr: Types.Ptr; len: INTEGER);
  434.     (*$IF NOT GENERATINGCFM*)
  435.     INLINE PASCAL $301F, $205F, $A656;
  436.     (*$END*)
  437. PROCEDURE IUCompPString*(aStr: Types.ConstStr255Param; bStr: Types.ConstStr255Param; itl2Handle: Types.Handle): INTEGER;
  438.     EXTERNAL PASCAL;
  439. PROCEDURE IUEqualPString*(aStr: Types.ConstStr255Param; bStr: Types.ConstStr255Param; itl2Handle: Types.Handle): INTEGER;
  440.     EXTERNAL PASCAL;
  441. PROCEDURE IUStringOrder*(aStr: Types.ConstStr255Param; bStr: Types.ConstStr255Param; aScript: Types.ScriptCode; bScript: Types.ScriptCode; aLang: Types.LangCode; bLang: Types.LangCode): INTEGER;
  442.     EXTERNAL PASCAL;
  443. PROCEDURE IUCompString*(aStr: Types.ConstStr255Param; bStr: Types.ConstStr255Param): INTEGER;
  444.     EXTERNAL PASCAL;
  445. PROCEDURE IUEqualString*(aStr: Types.ConstStr255Param; bStr: Types.ConstStr255Param): INTEGER;
  446.     EXTERNAL PASCAL;
  447. (*
  448.     The following provide direct function prototypes for new names for 68k
  449. *)
  450. PROCEDURE DateString*(dateTime: LONGINT; longFlag: Types.ByteParameter; VAR result: Types.Str255; intlHandle: Types.Handle);
  451.     (*$IF NOT GENERATINGCFM*)
  452.     INLINE PASCAL $3F3C, $000E, $A9ED;
  453.     (*$END*)
  454. PROCEDURE TimeString*(dateTime: LONGINT; wantSeconds: BOOLEAN; VAR result: Types.Str255; intlHandle: Types.Handle);
  455.     (*$IF NOT GENERATINGCFM*)
  456.     INLINE PASCAL $3F3C, $0010, $A9ED;
  457.     (*$END*)
  458. PROCEDURE LongDateString*(VAR dateTime: OSUtils.LongDateTime; longFlag: Types.ByteParameter; VAR result: Types.Str255; intlHandle: Types.Handle);
  459.     (*$IF NOT GENERATINGCFM*)
  460.     INLINE PASCAL $3F3C, $0014, $A9ED;
  461.     (*$END*)
  462. PROCEDURE LongTimeString*(VAR dateTime: OSUtils.LongDateTime; wantSeconds: BOOLEAN; VAR result: Types.Str255; intlHandle: Types.Handle);
  463.     (*$IF NOT GENERATINGCFM*)
  464.     INLINE PASCAL $3F3C, $0016, $A9ED;
  465.     (*$END*)
  466. PROCEDURE CompareString*(aStr: Types.ConstStr255Param; bStr: Types.ConstStr255Param; itl2Handle: Types.Handle): INTEGER;
  467.     EXTERNAL PASCAL;
  468. PROCEDURE IdenticalString*(aStr: Types.ConstStr255Param; bStr: Types.ConstStr255Param; itl2Handle: Types.Handle): INTEGER;
  469.     EXTERNAL PASCAL;
  470. PROCEDURE CompareText*(aPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; bPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; aLen: INTEGER; bLen: INTEGER; itl2Handle: Types.Handle): INTEGER;
  471.     (*$IF NOT GENERATINGCFM*)
  472.     INLINE PASCAL $3F3C, $001A, $A9ED;
  473.     (*$END*)
  474. PROCEDURE IdenticalText*(aPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; bPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; aLen: INTEGER; bLen: INTEGER; itl2Handle: Types.Handle): INTEGER;
  475.     (*$IF NOT GENERATINGCFM*)
  476.     INLINE PASCAL $3F3C, $001C, $A9ED;
  477.     (*$END*)
  478. PROCEDURE LanguageOrder*(language1: Types.LangCode; language2: Types.LangCode): INTEGER;
  479.     (*$IF NOT GENERATINGCFM*)
  480.     INLINE PASCAL $3F3C, $0020, $A9ED;
  481.     (*$END*)
  482. PROCEDURE TextOrder*(aPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; bPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; aLen: INTEGER; bLen: INTEGER; aScript: Types.ScriptCode; bScript: Types.ScriptCode; aLang: Types.LangCode; bLang: Types.LangCode): INTEGER;
  483.     (*$IF NOT GENERATINGCFM*)
  484.     INLINE PASCAL $3F3C, $0022, $A9ED;
  485.     (*$END*)
  486. PROCEDURE StringOrder*(aStr: Types.ConstStr255Param; bStr: Types.ConstStr255Param; aScript: Types.ScriptCode; bScript: Types.ScriptCode; aLang: Types.LangCode; bLang: Types.LangCode): INTEGER;
  487.     EXTERNAL PASCAL;
  488. (*$IF NOT OLDROUTINELOCATIONS *)
  489. PROCEDURE C2PStrProc*(aStr: (*ΔΔUNIVΔΔ*) Types.Ptr);
  490.     EXTERNAL PASCAL;
  491. PROCEDURE C2PStr*(cString: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.StringPtr;
  492.     EXTERNAL PASCAL;
  493. PROCEDURE P2CStrProc*(aStr: Types.StringPtr);
  494.     EXTERNAL PASCAL;
  495. PROCEDURE P2CStr*(pString: Types.StringPtr): Types.Ptr;
  496.     EXTERNAL PASCAL;
  497. (*$END*)
  498.  
  499. (* $ALIGN RESET*)
  500. (* $POP*)
  501.  
  502.  END TextUtils.
  503.